package czolgisci.tiles.factory;

import czolgisci.tiles.AMovableTile;
import czolgisci.tiles.ATile;
import czolgisci.tiles.Tank;
import czolgisci.tiles.Bullet;
import czolgisci.tiles.Wall;

/**
 * Podstawowa fabryka kafelków.
 * 
 * @author pillow, kasztan
 * @version 1.0
 */
public class StandardTileFactory implements ITileFactory
{
	public static StandardTileFactory getInstance()
	{
		if(instance == null)
			instance = new StandardTileFactory();
		return instance;
	}
	
	/**
	 * Tworzy czołg
	 * @return nowy czołg
	 * @see czolgisci.tiles.factory.ITileFactory#makeTank()
	 */
	public AMovableTile makeTank()
	{
		return new Tank();
	}

	/**
	 * Tworzy nabój
	 * @return nowy nabój
	 * @see czolgisci.tiles.factory.ITileFactory#makeBullet()
	 */
	public AMovableTile makeBullet()
	{
		return new Bullet(5, 5, null);
	}

	/**
	 * Tworzy fragment ściany
	 * @return fragment nowej ściany
	 * @see czolgisci.tiles.factory.ITileFactory#makeWall()
	 */
	public ATile makeWall()
	{
		return new Wall();
	}
	
	//////////////////////////////////////////////////////////
    //////////////////  PRIVATE  /////////////////////////////
    //////////////////////////////////////////////////////////
	private static StandardTileFactory instance = null;
	/**
	 * Konstruktor klasy
	 */
	private StandardTileFactory()
	{
	}
	
}
